import mysql.connector
from flask import Flask, jsonify, request

app = Flask(__name__)

# 连接数据库
conn = mysql.connector.connect(user='root', password='544002', host='localhost', database='shiyu', port="3307")


# 定义一个函数，用于从数据库中获取指定页数的数据
def get_data(page):
    cursor = conn.cursor()
    # 计算每页的起始位置
    offset = (page - 1) * 20
    # 查询表中不同的name并随机排序，然后取前20条
    cursor.execute(
        "SELECT DISTINCT articlename, author, url_img, intro FROM story_bxg ORDER BY RAND() LIMIT 20 OFFSET %s",
        (offset,))
    data = cursor.fetchall()
    return data


# 定义一个接口，接受页数参数，返回对应页数的数据
@app.route('/get_data', methods=['GET'])
def get_data_api():
    page = request.args.get('page', default=1, type=int)
    result = get_data(page)
    return jsonify(result)


# 关闭连接的函数
def close_connection():
    conn.close()


# 在应用关闭时调用关闭连接的函数
@app.teardown_appcontext
def teardown_db(exception):
    close_connection()


if __name__ == '__main__':
    app.run(debug=True)
